package com.tjetc;

import java.util.Scanner;

// 定义一个猫类
class Cat {
    // 在类中定义变量 我们叫做全局变量 属性 字段

    String name;

    String color;

    int age;

     /*
            类和对象的理解：
            1.类就是我们所说的设计图 从无到有 创建出来的一个新类型 抽离类难 类是唯一的
            2.对象就是我们根据设计图来实实在在建造出来的房子 实例 对象无限个

            创建对象
            实例化对象
            把类进行实例化

            类
                属性
                方法
            后续学：
                构造器
                内部类
                代码块
         */
}


public class _1Class {
    public static void main(String[] args) {
        // 创建一个对象
        Cat cat1 = new Cat();
        //  获取属性 通过.操作符 来获取对象中的属性或方法
//        System.out.println(cat1.name);
        // 设置属性
        cat1.age = 3;
        cat1.name = "哈基米";
        cat1.color = "白色";


        Cat cat2 = new Cat();
        cat2.name = "耄耋";
        cat2.age = 4;
        cat2.color = "橘色";

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入小猫的姓名：");
        String name = scanner.next();
        if (cat1.name.equals(name)) {
            System.out.println(cat1.name);
            System.out.println(cat1.age);
            System.out.println(cat1.color);
        }else if (cat2.name.equals(name)) {
            System.out.println(cat2.name);
            System.out.println(cat2.age);
            System.out.println(cat2.color);
        } else {
            System.out.println("没有这只猫");
        }

    }
    public static void main2(String[] args) {
        /*
            张三养了两只猫猫:一只名字叫小白,今年 3 岁, 白色。
            还有一只叫小花,今年 4 岁,花色。
            请编写一个程序，当用户输入小猫的名字时，就显示该猫的名字，年龄，颜色 。
            如果用户输入的小猫名错误，则显示张三没有这只猫猫。

            使用现有技术完成？可以

         */
        Scanner scanner = new Scanner(System.in);
        // 使用变量版本
        // 第一只猫
        String cat1Name = "哈基米";
        int cat1Age = 3;
        String cat1Color = "白色";

        // 第二只猫
        String cat2Name = "耄耋";
        int cat2Age = 2;
        String cat2Color = "橘色";

        System.out.println("请输入小猫的姓名：");
        String name = scanner.next();
        if (cat1Name.equals(name)) {
            System.out.println(cat1Name);
            System.out.println(cat1Age);
            System.out.println(cat1Color);
        }else if (cat2Name.equals(name)) {
            System.out.println(cat2Name);
            System.out.println(cat2Age);
            System.out.println(cat2Color);
        } else {
            System.out.println("没有这只猫");
        }

        // 使用数组解决
        /*
            思路分析：
            1.将名字全部放在一个数组中
            2.将年两全部放在一个数组中
            .....



         */
        /*
            问题：
            1.变量太多了 容易冲突
            2.变量太分散了 不利于集中管理
            3.数组要求我们对某一组数据要严格按照顺序编写
            4.数组通过下标来获取数据 String[] catNames = {"小白"}
            catNames[0] : 这是个什么东西？不太好表示

             由于这些问题 导致效率非常慢
         */




    }
    public static void main1(String[] args) {

        /*
            现阶段需要理解：
            1.面向对象： Java 纯面向对象的语言 你写过的所有的内容 都离不开对象
                好处：非常的贴近生活
            2.面向过程： 像我们的c
                从开始做到结束，按照某一个逻辑 一步一步的做
                好处：好理解
            怎么理解这俩个概念？
            举例：目前我们要考试 三门学科？语数外
                语数外看 做题 背公式 背单词
                最基本的策略：分主次 最大收益  干活的永远都是你自己 面向过程
                复习语文：找语文大佬
                复习数学：找数学大佬
                复习英文：找英文大佬
                干什么事找什么人（工具） 无需取考虑事情的细节 像对象发送消息
            后期：随着工作的年限 才会有一个理解
            面向接口：接口是类型
            面向切面：Spring 框架中

            类是一个数据类型：用来保存数据的
            目前我们学习的保存数据有什么？数组 变量 类（保存多个不同类型的数据集于一身）

         */


    }
}
